/*
ajax请求函数模块，返回值：response对象
 */
import axios from 'axios'
export default function ajax(url,data={},type='GET') {
  return new Promise(function (resolve, reject) {
    /*
    再次包裹一层promise是因为想得到response.data的结果
    这样就方便调用了。不然返回的只是response。resolve和reject分别是
    成功和失败时调用的函数。
     */
    let promise
    if (type === 'GET') {
// 准备 url query 参数数据
      let dataStr = '' // 数据拼接字符串
      Object.keys(data).forEach(key => {
        dataStr += key + '=' + data[key] + '&'
      })
      if (dataStr !== '') {
        dataStr = dataStr.substring(0, dataStr.lastIndexOf('&'))
        url = url + '?' + dataStr
      }
// 发送 get 请求
      promise = axios.get(url)
    } else {
// 发送 post 请求
      promise = axios.post(url, data)
    }
    promise.then(response => {
      resolve(response.data)
    })
      .catch(error => {
        reject(error)
      })
  })
}
